package com.two;

import java.util.ArrayList;
import java.util.Random;

//用于生成验证码
public class CodeUtil {
    private final static int LEN=4;
    //用一个静态方法表示
    public static String getCode(){
        //创建集合对象
        ArrayList<Character> list=new ArrayList<>();
        //添加字母a->z A->Z
        for(int i=0;i<26;i++){
            list.add((char)('a'+i));
            list.add((char)('A'+i));
        }
        //生成四个随机字母
        StringBuilder code= new StringBuilder();
        Random r=new Random();
        for(int i=0;i<LEN;i++){
            //获取随机索引
            int randomIndex=r.nextInt(list.size());
            //获取随机字母
            char randomChar=list.get(randomIndex);
            //生成随机四位字符串
            code.append(randomChar);
        }
        //在后面拼接0~9之间的数字
        int number =r.nextInt(10);
        //把随机数字拼接到code的后面
        code.append(number);
        //将字符串变成字符数组
        char[] chars= code.toString().toCharArray();
        int index=r.nextInt(chars.length);
        //拿着 4 索引上的数字，跟随机索引上的数字进行交换
        char temp=chars[LEN];
        chars[LEN]=chars[index];
        chars[index]=temp;
        //将字符数组变成字符串
        code = new StringBuilder(String.valueOf(chars));
        //注意最后将StringBuilder变成字符串
        return code.toString();
    }
}
